Hash Tablosu (Hash Table) Veri Yapısı
Hash tablosu (hash table) veri yapısı, key-value çiftlerini depolamak için kullanılan bir veri yapısıdır. Key-value çiftleri, birbirleriyle ilişkili verileri temsil etmek için kullanılır. Key değerleri, hash fonksiyonu ile bir hash değerine dönüştürülerek, bu hash değeri tablodaki bir indeks olarak kullanılır. Bu sayede veriye hızlı bir şekilde erişim sağlanır. Hash tabloları, arama, ekleme ve silme işlemlerinde O(1) karmaşıklığı ile oldukça performanslı bir veri yapısıdır.
Gündelik hayatta hash tablosu veri yapısının kullanıldığı 3 örnek:
- Bir sözlük uygulaması, sözcükleri ve anlamlarını depolamak için hash tablosu kullanır.
- Bir web sitesi, kullanıcıların kimlik bilgilerini saklamak için hash tablosu kullanır.
- Bir telefon rehberi uygulaması, kişi isimlerini ve telefon numaralarını depolamak için hash tablosu kullanır.
Bu 3 örnek için Türkçe pseudo kodları:
- Bir sözlük uygulaması için pseudo kod:
// Sözlük hash tablosu oluştur
sozluk = bos_hash_tablosu()
// Key-value çiftlerini ekle
sozluk.ekle("elma", "Elma, güzel bir meyvedir.")
sozluk.ekle("armut", "Armut, tadı güzel bir meyvedir.")
sozluk.ekle("portakal", "Portakal, turunçgil bir meyvedir.")
// Key değerleriyle sözcük anlamlarına eriş
elma_anlami = sozluk.getir("elma")
- Bir web sitesi için pseudo kod:
// Kullanıcı kimlik bilgileri hash tablosu oluştur
kullanici_bilgileri = bos_hash_tablosu()
// Kullanıcıların kimlik bilgilerini kaydet
kullanici_bilgileri.ekle("ahmet123", "Ahmet Yılmaz", "ahmet123@sirket.com", "1234")
kullanici_bilgileri.ekle("mehmet456", "Mehmet Yılmaz", "mehmet456@sirket.com", "5678")
kullanici_bilgileri.ekle("ayse789", "Ayşe Öz", "ayse789@sirket.com", "9123")
// Kullanıcı adı ve şifre ile kimlik doğrulama yap
kullanici_bilgisi = kullanici_bilgileri.getir("ahmet123")
EĞER kullanici_bilgisi["sifre"] == "1234" EĞER
print("Giriş başarılı!")
EĞER DEĞİL
print("Hatalı kullanıcı adı veya şifre.")
EĞER SONU
- Bir telefon rehberi uygulaması kaba kodu:
// Kişi bilgileri hash tablosu oluştur
rehber = bos_hash_tablosu()
// Kişi bilgilerini kaydet
rehber.ekle("Ali", "0555 555 55 55")
rehber.ekle("Ayşe", "0533 333 33 33")
rehber.ekle("Fatma", "0544 444 44 44")
// Kişi ismiyle telefon numarasını getir
numara = rehber.getir("Ayşe")
yazdır("Ayşe'nin numarası:", numara)